/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package grupb.upf.XMLObjects.impl;

import grupb.upf.XMLObjects.MetadataDC;
import grupb.upf.XMLObjects.Tagging;
import java.io.Serializable;

/**
 * <p>The implementation of the Video objects.</p>
 *
 * @version    0.0.1-SNAPSHOT
 * @author     Group B
 */
public final class Video implements grupb.upf.XMLObjects.Video, Serializable {

    /**
     * The serialVersionUID is created to be able to serialize this class, it's
     * necessary because it will be sent.
     */
    private static final long serialVersionUID = 1L;
    /**
     * The id of the video.
     */
    private int id;
    /**
     * The URL where the video is located.
     */
    private String url;
    /**
     * The metada associated with the video.
     */
    private MetadataDC metadata;
    /**
     * The tags of the video.
     */
    private Tagging tags;
    /**
     * This methos allow us to set the id of the video.
     * @param videoID The id of the video
     */
    @Override
    public void setID(final int videoID) {
        this.id = videoID;
    }
    /**
     * This method returns the id of the video.
     * @return The id of the video
     */
    @Override
    public int getID() {
        return this.id;
    }
    /**
     * This methods allos us to set the URL of the video.
     * @param videoURL The URL of the video
     */
    @Override
    public void setURL(final String videoURL) {
        this.url = videoURL;
    }
    /**
     * This method returns the URL of the video.
     * @return The URL of the video
     */
    @Override
    public String getURL() {
        return this.url;
    }
    /**
     * This method allows us to set the metadata of the video.
     * @param meta The metadata of the video
     */
    @Override
    public void setMetadataDC(final MetadataDC meta) {
        this.metadata = meta;
    }
    /**
     * This method returns the metadata of the video.
     * @return The metadata of the video.
     */
    @Override
    public MetadataDC getMetadataDC() {
        return this.metadata;
    }
    /**
     * This method allows to set tags to the video.
     * @param videoTags The tags of the video
     */
    @Override
    public void setTags(final Tagging videoTags) {
        this.tags = videoTags;
    }
    /**
     * This method return the tags of the video.
     * @return The tags of the video
     */
    @Override
    public Tagging getTags() {
        return this.tags;
    }
}

